home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 3.1 KB | 88 lines | [TEXT/MPS ] |
- (*
- MC68000Test.p
- Pascal Interface to routines to test to see if they are running on a MC68000 Processor
-
- Copyright Apple Computer, Inc. 1991, 1994
- All rights reserved
-
- *)
-
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE MC68000Test;
-
- IMPORT SYSTEM;
-
- (*
- The following routines are provided to the outside caller to handle checking to see if
- we are runing on the “proper” processor*:
-
- • To just do the check for the MC68000...
-
- PROCEDURE onMC68000*(): Boolean; C;
-
- • To do the check for MC68000 for MPW tools and to abort with an error message to stderr
- if we're on a MC68000...
-
- PROCEDURE abortToolOnMC68000*(exitCode: Integer); C;
-
- • To do the check for MC68000 for MPW tools or applications and to abort with an alert
- dialog if we're on a MC68000...
-
- PROCEDURE abortOnMC68000*; C;
-
- If the machine is an MC68000, then abortToolOnMC68000() and abortOnMC68000() generate the
- following message (appropriately formatted):
-
- “Sorry! This program assumes an MC68020, MC68030, or MC68040 processor. It cannot be
- run on your MC68000 machine.”
-
- There is a possible error condition where the processor cannot be determined using the
- SysEnvirons() system trap (on systems older than 4.1). In that case the following message
- is generated*:
-
- “Sorry! I cannot determine what processor you are running on! Since this program assumes
- you are running on an MC68020, MC68030, or MC68040, I am going to assume you have an
- MC68000 so it cannot be run on your machine.”
-
- Roughly, the cose of using abortToolOnMC68000() is about 750 bytes and abortOnMC68000()
- is about 1000 bytes. By contrast, onMC68000, which doesn't really do much of anything
- costs about 100 bytes.
-
- Note: these routines live in their own private segment, MC68000Test. The caller might
- want to do an UnloadSeg() on return since these routines would normally only be called
- once or you may want to resegment these routines to be part of your initialization code.
- They were segmented seperately to allow easy unloading or resegmenting.
- *)
-
- PROCEDURE onMC68000*(): BOOLEAN; (*ΔΔC;ΔΔ*)
- EXTERNAL (*•• C*);
- (*
- This routine returns true if we are currently running on an MC68000 and false otherwise.
- It is provided for convenience for those callers who wish to take some more appropriate
- actions based on the processor (other than just aborting with a canned error message).
- *)
-
-
- PROCEDURE abortToolOnMC68000*(exitCode: INTEGER); (*ΔΔC;ΔΔ*)
- EXTERNAL (*•• C*);
- (*
- This routine aborts a MPW Shell tool if it's running on an MC68000 processor. It is
- assumed that we are being called by an MPW Shell tool. It writes a message to stderr and
- aborts the tool if we are on a MC68000. The tool exit status code is specified by the
- caller (in exitCode). If 0 is specified, 1 will be used.
-
- If we are NOT on a MC68000, the routine simply returns to allow running of the tool.
- *)
-
-
- PROCEDURE abortOnMC68000*; (*ΔΔC;ΔΔ*)
- EXTERNAL (*•• C*);
- (*
- This routine aborts the calling program if it's running on an MC68000 processor. The
- caller can be either an MPW Shell tool OR a standard Mac application. It displays a
- message in an alert dialog and aborts if we are on a MC68000.
- *)
-
- END MC68000Test.
-